// 分类信息

import { topCategory } from '../../api/constants'
import { findAllCategory } from '../../api/category'
export default {
  namespaced: true,
  state() {
    return {
      // 如果默认是[]数组，看不见默认的9个分类，等你数据加载完毕才会看到。
      // 所以：根据常量数据来生成一个默认的顶级分类数据，不会出现空白（没数据的情况）
      list: topCategory
    }
  },
  // 加载数据成功后需要修改list所以需要mutations函数
  mutations: {
    setList (state, payload) {
      state.list = payload
    },
    // 显示当前一级分类下的二级分类
    show (state, id) {
      const category = state.list.find(item => item.id === id)
      category.open = true
    },
    // 隐藏当前一级分类下的二级分类
    hidden (state, id) {
      const category = state.list.find(item => item.id === id)
      category.open = false
    }
  },
  actions: {
    async getList ({ commit }) {
      try {
        const { result } = await findAllCategory()
        // 给一级分类加上控制二级分类是否显示的open属性
        // 默认为不显示
        result.forEach(item => item.open = false)
        // 获取数据成功，提交给mutations修改
        commit('setList', result)
      } catch (error) {
        console.log(error)
      }
    }
  }
}